#include <stdio.h>
#include <conio.h>
#include "graphics.h"


void pe56()
{
	printf("题目：画图，学用circle画圆形。\n");
	// 菜鸟的代码有问题，使用官方文档
	printf("官方文档：https://docs.easyx.cn/zh-cn/tutorials \n");

	initgraph(640, 480);	// 创建绘图窗口，大小为 640x480 像素

	// 设置背景色为绿色
	setbkcolor(GREEN);
	cleardevice();// 用背景色清空屏幕

	setcolor(BLUE); // 设置绘图色为蓝色

	// 在屏幕中央输出字符串 左顶点（0,0）右下点（640,480） 矩形中央写字
	RECT r = {0, 0, 640, 480};
	drawtext(_T("Hello World"), &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE);

	circle(200, 200, 100);	// 画圆，圆心(200, 200)，半径 100
	
	_getch();				// 按任意键继续
	closegraph();			// 关闭绘图窗口
}

void pe57()
{
	printf("题目：画图，学用line画直线 \n");

	initgraph(640, 480);	// 创建绘图窗口，大小为 640x480 像素

	line(100, 100, 500, 100);	// 画直线，起点(100, 100)，终点（500， 100）

	_getch();				// 按任意键继续
	closegraph();			// 关闭绘图窗口
}

void pe58()
{
	printf("题目：学用rectangle画方形。\n");
	
	initgraph(640, 480);	// 创建绘图窗口，大小为 640x480 像素

	rectangle(100, 100, 400, 400);	// 画无填充的矩形，对角线左部(100, 100)，对角线左部右部（400， 400）

	_getch();				// 按任意键继续
	closegraph();			// 关闭绘图窗口
}

void pe59()
{
	printf("题目：画图，综合例子。\n");
	
	initgraph(800, 600);	// 创建绘图窗口，大小为 800*600 像素

	// 在屏幕输出字符串
	RECT a = {0, 0, 800, 100};
	drawtext(_T("综合例子"), &a, DT_CENTER | DT_VCENTER | DT_SINGLELINE);

	RECT b = {0, 0, 400, 200};
	drawtext(_T("圆形"), &b, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
	circle(200, 225, 75);	// 画圆，圆心(200, 350)，半径 75

	RECT c = {400, 0, 800, 200};
	drawtext(_T("三角形"), &c, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
	line(500, 150, 700, 150); // 画直线 200
	line(700, 150, 700, 300); // 画直线 150
	line(700, 300, 500, 150); // 画直线 250

	RECT d = {0, 300, 400, 400};
	drawtext(_T("矩形"), &d, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
	rectangle(100, 400, 300, 550);	// 画无填充的矩形，对角线左部(100, 100)，对角线左部右部（400， 400）

	RECT e = {400, 300, 800, 400};
	drawtext(_T("无填充的扇形"), &e, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
	pie(500, 400, 700, 550, 0, 90); // 画无填充的扇形 左上角 右下角 起始角的弧度 终止角的弧度

	_getch();				// 按任意键继续
	closegraph();			// 关闭绘图窗口
}

void pe60()
{
	printf("题目：画图，综合例子2。\n");
	// 略。。。
}

void pe62()
{
	printf("题目：学习putpixel画点.\n");

	int i,j;
    initgraph(640, 480);

	// 设置背景色为绿色
	setbkcolor(YELLOW);
	cleardevice();// 用背景色清空屏幕

    for(i=50;i<=230;i+=20)
        for(j=50;j<=230;j++)
            putpixel(i, j, BLUE);

    for(j=50;j<=230;j+=20)
        for(i=50;i<=230;i++)
            putpixel(i, j, BLUE);

	_getch();				// 按任意键继续
	closegraph();			// 关闭绘图窗口
}

void pe63()
{
	printf("题目：画椭圆ellipse\n");

	initgraph(640, 480);

	ellipse(100, 100, 600, 400); // 画无填充的椭圆 左上角 (100, 100)  右下角 (600, 400)

	_getch();				// 按任意键继续
	closegraph();			// 关闭绘图窗口
}

void pe64()
{
	printf("题目：利用ellipse and rectangle 画图\n");
	
	int i,num=15,top=50;
    int left=20,right=50;

	initgraph(640, 480);

	for(i=0;i<num;i++)
    {
        ellipse(250,250,right,left);
        ellipse(250,250,20,top);
        rectangle(20-2*i,20-2*i,10*(i+2),10*(i+2));
        right+=5;
        left+=5;
        top+=10;
    }

	_getch();				// 按任意键继续
	closegraph();			// 关闭绘图窗口
}

void pe65()
{
	printf("题目：一个最优美的图案\n");
}

void pe66()
{
	printf("题目：输入3个数a,b,c，按大小顺序输出。\n");
	printf("程序分析：利用指针方法。\n");
}

/**
GCC\MINGW 配置方法：
1.下载SDK
2.将C.h重命名为graphics。h放复制GCC的include目录下
3.把ReleaseA或DebugA下的libEasyXwarpper。a复制到GCC的lib目录下
4.编译时加上 -lEasyXwarpper 就能编译通过
5.运行时必须复制ReleaseA或DebugA（和第3步时的选择一致）下的EasyXwarpper。dll复制到程序目录
画图命令行：cd "d:\VSCode\C\test\" && gcc Draw.c -lEasyXwarpper -o Draw && "d:\VSCode\C\test\"Draw
 */
// C 练习实例 -- 画图实例
int main(void) 
{
	printf("GCC\\MINGW 配置方法：\n1.下载SDK\n2.将C.h重命名为graphics。h放复制GCC的include目录下\n3.把ReleaseA或DebugA下的libEasyXwarpper。a复制到GCC的lib目录下4.编译时加上 -lEasyXwarpper 就能编译通过\n5.运行时必须复制ReleaseA或DebugA（和第3步时的选择一致）下的EasyXwarpper。dll复制到程序目录\n\n");
	
	// pe56();
	// pe57();
	// pe58();
	pe59();
	// pe60();
	// pe62();
	// pe63();
	// pe64();
	// pe65();

	return 0;
}